home *** CD-ROM | disk | FTP | other *** search
/ Pascal Super Library / Pascal Super Library (CW International)(1997).bin / MOTOROLA / 6805V107 / TEST.LST < prev    next >
File List  |  1995-05-02  |  26KB  |  492 lines

  1. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   1
  2.  
  3.  1:   1                              title   'Keyless Lock - AN863'
  4.  1:   2                      * Motorola Evaluation Program: MC1468705F2  Keyle
  5.  1:   3                      * See Motorola application note AN-863
  6.  1:   4                      *
  7.  1:   5                      * This was typed in from a Motorola application-n
  8.  1:   6                      *  a simple demonstration of the software package
  9.  1:   7                      * It does not exhibit every capability of the Ass
  10.  1:   8                      *  (eg complex operand expressions), but it will 
  11.  1:   9                      *  as a start.
  12.  1:  10                      *
  13.  1:  11                      * If you want to emulate this code, be sure to se
  14.  1:  12                      *  "68705F2" emulation mode.
  15.  1:  13                      *
  16.  1:  14                              include '68705f2.asm'   Standard definiti
  17.  2:   1                      * Definitions of Hardware Locations: MC1468705F2
  18.  2:   2                      *
  19.  2:   3 C 0000          0000         ORG     0
  20.  2:   4 C 0000 00            PORTA   FCB     0       The 3 I/O Ports
  21.  2:   5 C 0001 00            PORTB   FCB     0
  22.  2:   6 C 0002 00            PORTC   FCB     0       NB Bits 4-7 unused: read 
  23.  2:   7 C 0003          0004 DDR     EQU     4       Offset for Direction Reg.
  24.  2:   8                      *
  25.  2:   9 C 0003          0008         ORG     8
  26.  2:  10 C 0008 00            TIMER   FCB     0       Timer Register
  27.  2:  11                      *
  28.  2:  12 C 0009          0800 MEMSIZ  EQU     $0800   Max. Memory address +1
  29.  2:  13                      *
  30.  1:  15 C 0009          0040         ORG     $40
  31.  1:  16                      *
  32.  1:  17 C 0040 00            CTRL    FCB     0
  33.  1:  18 C 0041          0008 CODE    RMB     8       ENTRY CODE LOCATION
  34.  1:  19 C 0049          0008 NCODE   RMB     8       ENTERED CODE LOCATION
  35.  1:  20 C 0051          0008 VERI    RMB     8       VERIFY CODE LOCATION
  36.  1:  21 C 0059 00            TEMPX   FCB     0       TEMPORARY REG FOR X
  37.  1:  22 C 005A 00            TEMP    FCB     0       ANOTHER TEMP REG
  38.  1:  23 C 005B 00            TEMP2   FCB     0       TIME COUNTER (UPPER)
  39.  1:  24 C 005C 00            TEMP1   FCB     0       TIME COUNTER (LOWER)
  40.  1:  25 C 005D 00            TEMPA1  FCB     0       TIME DELAY REGISTER
  41.  1:  26 C 005E 00            TEMPA   FCB     0
  42.  1:  27 C 005F 00            VALID1  FCB     0
  43.  1:  28 C 0060 00            VALID2  FCB     0
  44.  1:  29 C 0061 00            TEMP3   FCB     0
  45.  1:  30                      *
  46.  1:  31                      *
  47.  1:  32 C 0062          0000 BLANK   EQU     $00     BLANK CHARACTER TO LCD
  48.  1:  33 C 0062          0020 DASH    EQU     $20     DASH
  49.  1:  34                      *
  50.  1:  35                      *************************************************
  51.  1:  36                      *
  52.  1:  37                      *       Equates, etc., to resolve references to c
  53.  1:  38                      *
  54.  1:  39                      *************************************************
  55.  1:  40                      *
  56.  1:  41 C 0062          00B9         ORG     $B9
  57.  1:  42 C 00B9 56 45 52 49   VERIFY  MSG     'VERIFY'
  58.  1:  43                      *
  59.  1:  44 C 00BF          00C1         ORG     $C1
  60.  1:  45 C 00C1 45 52 52 4F   ERROR   MSG     'ERROR'
  61.  1:  46                      *
  62.  1:  47 C 00C6          00C9         ORG     $C9
  63.  1:  48 C 00C9 4F 50 45 4E   OPEN1   MSG     'OPEN'
  64. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   2
  65.  
  66.  1:  49                      *
  67.  1:  50 C 00CD          00D1         ORG     $D1
  68.  1:  51 C 00D1 43 48 41 4E   CHG     MSG     'CHANGE'
  69.  1:  52                      *
  70.  1:  53                      *
  71.  1:  54                      *************************************************
  72.  1:  55                      *                                                
  73.  1:  56                      * NB Changed code here!!                         
  74.  1:  57                      * The original definitions follow: these pointed 
  75.  1:  58                      *  to a firmware debugger (not part of this code)
  76.  1:  59                      * To make this code run (in emulation), they are 
  77.  1:  60                      *  replaced by EQU's to the code start.          
  78.  1:  61                      *                                                
  79.  1:  62                      *RESET   EQU     $F8    Restart firmeware debugge
  80.  1:  63                      *MONIT   EQU     $179   SWI instruction: trap    
  81.  1:  64                      *                                                
  82.  1:  65                      *************************************************
  83.  1:  66                      *
  84. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   3
  85.  
  86.  1:  67                              eject
  87.  1:  68                      *************************************************
  88.  1:  69                      *
  89.  1:  70 C 00D7          0343         ORG     $343
  90.  1:  71                      *
  91.  1:  72                      *               INITIALISATION GOES HERE
  92.  1:  73                      *
  93.  1:  74 C 0343          0343 RESET   EQU     $
  94.  1:  75 C 0343          0343 MONIT   EQU     $
  95.  1:  76 C 0343 A6 F0       2 LOCK    LDA     #$F0
  96.  1:  77 C 0345 B7 04       4         STA     PORTA+DDR
  97.  1:  78 C 0347 3F 01       5         CLR     PORTB           CLEAR PORTB
  98.  1:  79 C 0349 3F 40       5         CLR     CTRL
  99.  1:  80 C 034B 4F          3         CLRA
  100.  1:  81 C 034C 43          3         COMA                    GET FF
  101.  1:  82 C 034D B7 05       4         STA     PORTB+DDR       SET PORTB DDR TO 
  102.  1:  83 C 034F CD 00 00    6?BEGIN   JSR     CLEAR
  103.  1:  84                      *
  104.  1:  85                      *
  105.  1:  86 C 0352 8E          2         STOP                    STOP PROCESSOR AN
  106.  1:  87 C 0353 CD 00 00    6?BGIN1   JSR     CLEAR           CLEAR DISPLAY
  107.  1:  88 C 0356 9A          2         CLI
  108.  1:  89                      *
  109.  1:  90                      *       GET NUMBER
  110.  1:  91                      *
  111.  1:  92 C 0357 AE 49       2         LDX     #NCODE          GET RAM STORAGE S
  112.  1:  93 C 0359 AD 00       6?        BSR     GET8            GET 8 NUMBERS
  113.  1:  94                      *
  114.  1:  95                      *       NOW THAT WE HAVE THE EIGHT-DIGIT NUMBER C
  115.  1:  96                      *       THE VALID ENTRY CODE AND THE CHANGE CODE.
  116.  1:  97                      *       NO MATCH INCREMENT ALARM COUNTER.
  117.  1:  98                      *
  118.  1:  99 C 035B AE 08       2         LDX     #$08            GET COUNT
  119.  1: 100 C 035D E6 48       4 MOR2    LDA     NCODE-1,X       GET FIRST/N NUMBE
  120.  1: 101 C 035F E1 D0       4         CMP     CHG-1,X         IS IT THE CHANGE 
  121.  1: 102 C 0361 26 00       3?        BNE     MORR            IF Z=0 NOT EQUAL
  122.  1: 103 C 0363 5A          3         DECX                    DECREMENT COUNTER
  123.  1: 104 C 0364 26 F7       3         BNE     MOR2            DO MORE IF NO
  124.  1: 105 C 0366 20 00       3?        BRA     VERI1
  125.  1: 106                      *
  126.  1: 107                      *
  127.  1: 108                      
  128.     @0362 =..05 Resolved
  129.  1: 109 C 0368 AE 41       2 MORR    LDX     #CODE           GET FIRST LOCATIO
  130.  1: 110 C 036A CD 00 00    6?        JSR     BLCMP           COMPARE THEM
  131.  1: 111 C 036D 4C          3         INCA                    CHECK FOR EQUAL
  132.  1: 112 C 036E 26 00       3?        BNE     OPEN            IF NOT 0 THEN EQU
  133.  1: 113 C 0370 20 00       3?        BRA     ALARM1
  134.  1: 114                      *
  135.  1: 115                      *
  136.  1: 116                      *       CHANGE ENTRY CODE SECTION WITH VERIFY
  137.  1: 117                      *
  138.  1: 118                      
  139.     @0367 =..0A Resolved
  140.  1: 119 C 0372 CD 00 00    6?VERI1   JSR     CLEAR           CLEAR DISPLAY
  141.  1: 120 C 0375 AE 49       2 VERI2   LDX     #NCODE          GET RAM LOCATION
  142.  1: 121 C 0377 AD 00       6?        BSR     GET8            GET NUMBER
  143.  1: 122                      *
  144.  1: 123                      *       SEND THE WORD VERIFY HERE
  145.  1: 124                      *
  146.  1: 125 C 0379 AE 08       2         LDX     #$08            GET COUNTER
  147. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   4
  148.  
  149.  1: 126 C 037B E6 B8       4 LOOP    LDA     VERIFY-1,X
  150.  1: 127 C 037D CD 00 00    6?        JSR     DSPLY
  151.  1: 128 C 0380 5A          3         DECX
  152.  1: 129 C 0381 26 F8       3         BNE     LOOP
  153.  1: 130                      *
  154.  1: 131                      *
  155.  1: 132 C 0383 AE 51       2         LDX     #VERI           GET RAM LOCATION
  156.  1: 133 C 0385 AD 00       6?        BSR     GET8            GET NUMBER
  157.  1: 134                      *
  158.  1: 135                      *       COMPARE VERIFY
  159.  1: 136                      *
  160.  1: 137 C 0387 AE 49       2         LDX     #NCODE          GET FIRST NUMBER
  161.  1: 138 C 0389 CD 00 00    6?        JSR     BLCMP           COMPARE
  162.  1: 139 C 038C 4C          3         INCA                    CHECK FOR FF
  163.  1: 140 C 038D 27 00       3?        BEQ     CNT2            IF ZERO THEN ERRO
  164.  1: 141                      *
  165.  1: 142                      *       VERIFY OK
  166.  1: 143                      *
  167.  1: 144 C 038F AE 08       2         LDX     #$08
  168.  1: 145 C 0391 E6 50       4 MOR6    LDA     VERI-1,X        GET START OF CODE
  169.  1: 146 C 0393 E7 40       5         STA     CODE-1,X        STORE IT
  170.  1: 147 C 0395 5A          3         DECX
  171.  1: 148 C 0396 26 F9       3         BNE     MOR6            IF NOT DONE DO MO
  172.  1: 149 C 0398 CC 03 4F    3         JMP     BEGIN           GOTO START OF PRO
  173.  1: 150                      *
  174.  1: 151                      *       IF IT GETS HERE THERE HAS BEEN A VERIFY E
  175.  1: 152                      *       SEND THE WORD ERROR TO THE LCD
  176.  1: 153                      *
  177.  1: 154                      
  178.     @038E =..0C Resolved
  179.  1: 155 C 039B AE 08       2 CNT2    LDX     #$08            GET COUNTER
  180.  1: 156 C 039D E6 C0       4 LOOP2   LDA     ERROR-1,X
  181.  1: 157 C 039F CD 00 00    6?        JSR     DSPLY
  182.  1: 158 C 03A2 5A          3         DECX
  183.  1: 159 C 03A3 26 F8       3         BNE     LOOP2
  184.  1: 160 C 03A5 20 CE       3         BRA     VERI2
  185.  1: 161                      *
  186.  1: 162                      *       THIS IS THE OPEN LOCK PART
  187.  1: 163                      *
  188.  1: 164                      
  189.     @036F =..37 Resolved
  190.  1: 165 C 03A7 AE 08       2 OPEN    LDX     #$08            GET COUNTER
  191.  1: 166 C 03A9 E6 C8       4 LOO3    LDA     OPEN1-1,X
  192.  1: 167 C 03AB CD 00 00    6?        JSR     DSPLY
  193.  1: 168 C 03AE 5A          3         DECX    
  194.  1: 169 C 03AF 26 F8       3         BNE     LOO3
  195.  1: 170                      *
  196.  1: 171 C 03B1 0F 40 00    5?        BRCLR   7,CTRL,NXT      ALARM BIT SET?
  197.  1: 172 C 03B4 1F 40       5         BCLR    7,CTRL          RESET IT IF YES
  198.  1: 173 C 03B6 15 01       5         BCLR    2,PORTB         CLEAR ALARM BIT T
  199.  1: 174                      
  200.     @03B3 =..04 Resolved
  201.  1: 175 C 03B8 A6 F8       2 NXT     LDA     #$F8
  202.  1: 176 C 03BA B7 01       4         STA     PORTB
  203.  1: 177                      *
  204.  1: 178                      *
  205.  1: 179                      *       LOOP FOR APPROX. 8 SECONDS
  206.  1: 180                      *
  207.  1: 181 C 03BC AE FF       2         LDX     #$FF            GET COUNT
  208.  1: 182 C 03BE CD 00 00    6?        JSR     TMDLY           DELAY
  209.  1: 183                      *
  210. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   5
  211.  
  212.  1: 184                      *       CLOSE LOCK
  213.  1: 185                      *
  214.  1: 186 C 03C1 4F          3         CLRA
  215.  1: 187 C 03C2 B7 01       4         STA     PORTB
  216.  1: 188 C 03C4 CC 03 4F    3         JMP     BEGIN
  217.  1: 189                      *
  218.  1: 190                      *       THIS IS THE ALARM SPOT
  219.  1: 191                      *
  220.  1: 192                      
  221.     @0371 =..55 Resolved
  222.  1: 193 C 03C7 3C 40       5 ALARM1  INC     CTRL            INCREMENT ALARM C
  223.  1: 194 C 03C9 03 40 00    5?        BRCLR   1,CTRL,NXT2     CHECK FOR ALARM =
  224.  1: 195 C 03CC 14 01       5         BSET    2,PORTB         IF ALARM=2, THEN 
  225.  1: 196                      
  226.     @03CB =..02 Resolved
  227.  1: 197 C 03CE CC 03 4F    3 NXT2    JMP     BEGIN           GOTO START
  228.  1: 198                      *
  229.  1: 199                      *
  230.  1: 200                      *       THIS IS THE SUBROUTINE GET8
  231.  1: 201                      *
  232.  1: 202                      
  233.  1: 203                      
  234.  1: 204                      
  235.     @0386 =..4A Resolved
  236.     @0378 =..58 Resolved
  237.     @035A =..76 Resolved
  238.  1: 205 C 03D1 A6 08       2 GET8    LDA     #$08            GET NUMBER COUNT
  239.  1: 206 C 03D3 B7 5C       4         STA     TEMP1           SAVE COUNTER
  240.  1: 207 C 03D5 A6 40       2 SCAN2   LDA     #$40            GET UPPER COUNTER
  241.  1: 208 C 03D7 B7 5B       4         STA     TEMP2           SAVE COUNTER
  242.  1: 209 C 03D9 A6 FF       2 SCAN1   LDA     #$FF            GET LOWER COUNTER
  243.  1: 210 C 03DB B7 5A       4         STA     TEMP            SAVE COUNTER
  244.  1: 211                      *
  245.  1: 212                      *
  246.  1: 213                      *************************************************
  247.  1: 214                      *       THIS SUBROUTINE SCANS A 4 x 3 MATRIX OF K
  248.  1: 215                      * VALUE OF 1-12 IN THE A ACCUMULATOR IF IT FINDS 
  249.  1: 216                      * OTHERWISE IT RETURNS A VALUE OF $FF IF NO KEY I
  250.  1: 217                      * ONLY REGISTER DESTROYED IS THE A ACCUMULATOR AL
  251.  1: 218                      * ARE LEFT ALONE.                                
  252.  1: 219                      *************************************************
  253.  1: 220                      *
  254.  1: 221 C 03DD          03DD SCAN    EQU     $
  255.  1: 222 C 03DD A6 40       2         LDA     #$40
  256.  1: 223 C 03DF B7 00       4         STA     PORTA           SELECT ONE COLUMN
  257.  1: 224 C 03E1 BF 59       4         STX     TEMPX           SAVE X REGISTER
  258.  1: 225 C 03E3 AE 03       2         LDX     #$03            COUNT THE COLUMN
  259.  1: 226                      *
  260.  1: 227 C 03E5 B6 00       3 LOOPA   LDA     PORTA           CHECK IF KEY PRES
  261.  1: 228 C 03E7 A4 0F       2         AND     #$0F            CLEAR UPPER NIBBL
  262.  1: 229 C 03E9 26 00       3?        BNE     DEBNCE          BRANCH IF KEY PRE
  263.  1: 230 C 03EB 34 00       5 NOKEY   LSR     PORTA           NEXT COLUMN
  264.  1: 231 C 03ED 5A          3         DECX                    DECREMENT COLUMN 
  265.  1: 232 C 03EE 26 F5       3         BNE     LOOPA           NO KEY PRESSED
  266.  1: 233 C 03F0 5A          3         DECX                    RETURN X WITH $FF
  267.  1: 234                      *
  268.  1: 235 C 03F1 9F          2 EXIT    TXA
  269.  1: 236 C 03F2 BE 59       3         LDX     TEMPX
  270.  1: 237 C 03F4 20 00       3?        BRA     CK
  271.  1: 238                      *
  272.  1: 239                      *
  273. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   6
  274.  
  275.  1: 240 C 03F6 44          3 FOUND   LSRA                    SHIFT IF THE ROW 
  276.  1: 241 C 03F7 25 00       3?        BCS     CHECK
  277.  1: 242 C 03F9 5C          3         INCX                    ADD 3 FOR EVERY R
  278.  1: 243 C 03FA 5C          3         INCX
  279.  1: 244 C 03FB 5C          3         INCX
  280.  1: 245 C 03FC 20 F8       3         BRA     FOUND
  281.  1: 246                      *
  282.  1: 247                      
  283.     @03F8 =..05 Resolved
  284.  1: 248 C 03FE A3 0A       2 CHECK   CPX     #$0A
  285.  1: 249 C 0400 25 EF       3         BLO     EXIT            NUMBER RETURNED <
  286.  1: 250 C 0402 A3 0B       2         CPX     #$0B
  287.  1: 251 C 0404 27 00       3?        BEQ     FIX             INPUT NUMBER IS Z
  288.  1: 252 C 0406 AE FF       2 INVAL   LDX     #$FF            INVALID ENTRY RET
  289.  1: 253 C 0408 20 E7       3         BRA     EXIT
  290.  1: 254                      
  291.     @0405 =..04 Resolved
  292.  1: 255 C 040A AE 00       2 FIX     LDX     #$00            RETURN 0 IN X
  293.  1: 256 C 040C 20 E3       3         BRA     EXIT
  294.  1: 257                      *
  295.  1: 258                      
  296.     @03EA =..23 Resolved
  297.  1: 259 C 040E B7 5E       4 DEBNCE  STA     TEMPA           SAVE A REGISTER
  298.  1: 260 C 0410 3F 5F       5         CLR     VALID1
  299.  1: 261 C 0412 3F 60       5         CLR     VALID2
  300.  1: 262 C 0414 44          3 DBNCE1  LSRA
  301.  1: 263 C 0415 25 00       3?        BCS     ONEKEY          CHECK TO MAKE SUR
  302.  1: 264 C 0417 3C 5F       5         INC     VALID1
  303.  1: 265 C 0419 20 F9       3         BRA     DBNCE1          CONTINUE CHECK
  304.  1: 266                      
  305.     @0416 =..04 Resolved
  306.  1: 267 C 041B A1 00       2 ONEKEY  CMP     #$00            ONLY ONE KEY PRES
  307.  1: 268 C 041D 26 E7       3         BNE     INVAL           NO, MORE THAN ONE
  308.  1: 269                      *
  309.  1: 270 C 041F BF 61       4         STX     TEMP3
  310.  1: 271 C 0421 AE FF       2         LDX     #$FF
  311.  1: 272 C 0423 5A          3 MOR10   DECX
  312.  1: 273 C 0424 26 FD       3         BNE     MOR10
  313.  1: 274 C 0426 BE 61       3         LDX     TEMP3
  314.  1: 275                      *
  315.  1: 276 C 0428 B6 00       3         LDA     PORTA           CHECK TO MAKE SUR
  316.  1: 277 C 042A A4 0F       2         AND     #$0F
  317.  1: 278 C 042C 44          3 ROWCK1  LSRA
  318.  1: 279 C 042D 25 00       3?        BCS     ONEKY1
  319.  1: 280 C 042F 3C 60       5         INC     VALID2
  320.  1: 281 C 0431 20 F9       3         BRA     ROWCK1
  321.  1: 282                      
  322.     @042E =..04 Resolved
  323.  1: 283 C 0433 B6 60       3 ONEKY1  LDA     VALID2
  324.  1: 284 C 0435 B1 5F       3         CMP     VALID1          SAME KEY PRESSED
  325.  1: 285 C 0437 26 CD       3         BNE     INVAL           NO! SAME KEY NOT 
  326.  1: 286                      *
  327.  1: 287                      *
  328.  1: 288 C 0439 B6 00       3 UPKEY   LDA     PORTA           CHECK TO MAKE SUR
  329.  1: 289 C 043B A4 0F       2         AND     #$0F
  330.  1: 290 C 043D 26 FA       3         BNE     UPKEY           RELEASED? NO
  331.  1: 291 C 043F B6 5E       3         LDA     TEMPA           VALID KEY PRESS
  332.  1: 292 C 0441 20 B3       3         BRA     FOUND           CALCULATE KEY NUM
  333.  1: 293                      *
  334.  1: 294                      *
  335.  1: 295                      
  336. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   7
  337.  
  338.     @03F5 =..4D Resolved
  339.  1: 296 C 0443 4C          3 CK      INCA                    INCREMENT A Z=1=N
  340.  1: 297 C 0444 26 00       3?        BNE     BACK            GO BACK IF NOT ZE
  341.  1: 298 C 0446 BF 59       4         STX     TEMPX           SAVE X
  342.  1: 299 C 0448 AE 01       2         LDX     #$01
  343.  1: 300 C 044A AD 00       6?        BSR     TMDLY           DELAY FOR 32MS
  344.  1: 301 C 044C BE 59       3         LDX     TEMPX           GET X
  345.  1: 302 C 044E 3A 5A       5         DEC     TEMP            DEC LOWER COUNTER
  346.  1: 303 C 0450 26 8B       3         BNE     SCAN            CHECK FOR MORE KE
  347.  1: 304 C 0452 3A 5B       5         DEC     TEMP2           DEC UPPER COUNTER
  348.  1: 305 C 0454 26 83       3         BNE     SCAN1           CHECK FOR MORE KE
  349.  1: 306                      *
  350.  1: 307                      *       CLEAR DISPLAY HERE
  351.  1: 308                      *
  352.  1: 309 C 0456 CD 00 00    6?BCK     JSR     CLEAR
  353.  1: 310 C 0459 9C          2         RSP
  354.  1: 311 C 045A CC 03 4F    3         JMP     BEGIN
  355.  1: 312                      
  356.     @0445 =..17 Resolved
  357.  1: 313 C 045D 4A          3 BACK    DECA                    ADJUST KEY NUMBER
  358.  1: 314 C 045E F7          4         STA     ,X              SAVE NUMBER
  359.  1: 315 C 045F A6 20       2         LDA     #DASH
  360.  1: 316 C 0461 AD 00       6?        BSR     DSPLY
  361.  1: 317 C 0463 5C          3         INCX                    INC POINTER
  362.  1: 318 C 0464 3A 5C       5         DEC     TEMP1           DEC COUNTER
  363.  1: 319 C 0466 26 00       3?        BNE     SC1             IF NOT 8 GET MORE
  364.  1: 320 C 0468 81          6         RTS                     RETURN
  365.  1: 321                      
  366.     @0467 =..01 Resolved
  367.  1: 322 C 0469 CC 03 D5    3 SC1     JMP     SCAN2
  368.  1: 323                      *
  369.  1: 324                      *       THIS IS THE DISPLAY SUBROUTINE
  370.  1: 325                      *
  371.  1: 326                      
  372.  1: 327                      
  373.  1: 328                      
  374.  1: 329                      
  375.     @0462 =..09 Resolved
  376.     @03AC =046C Resolved
  377.     @03A0 =046C Resolved
  378.     @037E =046C Resolved
  379.  1: 330 C 046C BF 59       4 DSPLY   STX     TEMPX           SAVE X
  380.  1: 331 C 046E AE 08       2         LDX     #$08            GET COUNTER
  381.  1: 332 C 0470 98          2         CLC                     CLEAR CARRY
  382.  1: 333 C 0471 48          3 MOR8    LSLA                    ROTATE TO GET BIT
  383.  1: 334 C 0472 25 00       3?        BLO     ONE             ONE OR A ZERO
  384.  1: 335 C 0474 11 01       5         BCLR    0,PORTB         SEND ZERO
  385.  1: 336 C 0476 20 00       3?        BRA     STRB
  386.  1: 337                      
  387.     @0473 =..04 Resolved
  388.  1: 338 C 0478 10 01       5 ONE     BSET    0,PORTB         SEND ONE
  389.  1: 339                      
  390.     @0477 =..02 Resolved
  391.  1: 340 C 047A 12 01       5 STRB    BSET    1,PORTB         SEND STROBE
  392.  1: 341 C 047C 13 01       5         BCLR    1,PORTB         TO ENTER DATA
  393.  1: 342 C 047E 5A          3         DECX                    DEC COUNTER
  394.  1: 343 C 047F 26 F0       3         BNE     MOR8
  395.  1: 344 C 0481 BE 59       3         LDX     TEMPX
  396.  1: 345 C 0483 81          6         RTS                     RETURN
  397.  1: 346                      *
  398.  1: 347                      
  399. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   8
  400.  
  401.  1: 348                      
  402.  1: 349                      
  403.  1: 350                      
  404.     @0457 =0484 Resolved
  405.     @0373 =0484 Resolved
  406.     @0354 =0484 Resolved
  407.     @0350 =0484 Resolved
  408.  1: 351 C 0484 4F          3 CLEAR   CLRA
  409.  1: 352 C 0485 AE 08       2         LDX     #$08
  410.  1: 353 C 0487 AD E3       6 LOO     BSR     DSPLY
  411.  1: 354 C 0489 5A          3         DECX
  412.  1: 355 C 048A 26 FB       3         BNE     LOO
  413.  1: 356 C 048C 81          6         RTS
  414.  1: 357                      *
  415.  1: 358                      *       THIS IS THE BLOCK COMPARE ROUTINE
  416.  1: 359                      *
  417.  1: 360                      *       X-CONTAINS THE LOWER ORDER LOCATION
  418.  1: 361                      *       THIS ROUTINE ASSUMES THE ONE TO EIGHT
  419.  1: 362                      *       DIGIT NUMBERS ARE NEXT TO EACH OTHER
  420.  1: 363                      *
  421.  1: 364                      
  422.  1: 365                      
  423.     @038A =048D Resolved
  424.     @036B =048D Resolved
  425.  1: 366 C 048D A6 08       2 BLCMP   LDA     #$08            GET COUNTER
  426.  1: 367 C 048F B7 5D       4         STA     TEMPA1          SAVE COUNTER
  427.  1: 368 C 0491 F6          3 MOR1    LDA     ,X              GET IT
  428.  1: 369 C 0492 A1 08       2         CMP     #$08,X          COMPARE
  429.  1: 370 C 0494 26 00       3?        BNE     RT              IF NO COMPARE GO 
  430.  1: 371 C 0496 5C          3         INCX
  431.  1: 372 C 0497 3A 5D       5         DEC     TEMPA1          DEC COUNTER
  432.  1: 373 C 0499 26 F6       3         BNE     MOR1            IF NOT DONE DO MO
  433.  1: 374 C 049B 4F          3         CLRA                    GET ALL ZEROS
  434.  1: 375 C 049C 20 00       3?        BRA     RT1
  435.  1: 376                      
  436.     @0495 =..08 Resolved
  437.  1: 377 C 049E 4F          3 RT      CLRA
  438.  1: 378 C 049F 43          3         COMA                    GET ALL ONES
  439.  1: 379                      
  440.     @049D =..02 Resolved
  441.  1: 380 C 04A0 81          6 RT1     RTS                     RETURN 00=EQUAL F
  442.  1: 381                      *
  443.  1: 382                      *
  444.  1: 383                      *       THIS IS THE TIME DELAY ROUTINE
  445.  1: 384                      *
  446.  1: 385                      *       X CONTAINS THE NUMBER OF TIME-OUTS THAT T
  447.  1: 386                      *       COUNTER WILL GO THRU
  448.  1: 387                      *       ONE TIMEOUT=32 MILLISEC.
  449.  1: 388                      *
  450.  1: 389                      
  451.  1: 390                      
  452.     @044B =..55 Resolved
  453.     @03BF =04A1 Resolved
  454.  1: 391 C 04A1 B7 5D       4 TMDLY   STA     TEMPA1          SAVEACC.
  455.  1: 392 C 04A3 A6 47       2 MOR     LDA     #$47            GET TIMER CONTROL
  456.  1: 393 C 04A5 B7 09       4         STA     TIMER+1         STORE
  457.  1: 394 C 04A7 A6 FF       2         LDA     #$FF            GET ALL ONES
  458.  1: 395 C 04A9 B7 08       4         STA     TIMER           STORE
  459.  1: 396 C 04AB 0F 09 FD    5 HERE    BRCLR   7,TIMER+1,HERE  POLL TIMER IRQ BI
  460.  1: 397 C 04AE 5A          3         DECX                    DEC COUNTER
  461.  1: 398 C 04AF 26 F2       3         BNE     MOR             IF NOT DONE DO MO
  462. MC68705 Assembler ver 1.06            Keyless Lock - AN863   2:05:95 Page   9
  463.  
  464.  1: 399 C 04B1 81          6         RTS                     RETURN
  465.  1: 400                      *
  466.  1: 401                      *
  467.  1: 402                      *       THIS IS THE IRQ DRIVER TO GET THE WHOLE T
  468.  1: 403                      *
  469.  1: 404 C 04B2 9C          2 INT     RSP
  470.  1: 405 C 04B3 9A          2         CLI
  471.  1: 406 C 04B4 CC 03 53    3         JMP     BGIN1
  472.  1: 407                      *
  473.  1: 408                      *
  474.  1: 409                      *       SET UP EXTERNAL INTERRUPT VECTOR HERE
  475.  1: 410                      *
  476.  1: 411                      *************************************************
  477.  1: 412                      *
  478.  1: 413                      *       VECTORS
  479.  1: 414                      *
  480.  1: 415                      *************************************************
  481.  1: 416                      *
  482.  1: 417 C 04B7          07F6         ORG     MEMSIZ-10
  483.  1: 418 C 07F6 03 53                 FDB     BGIN1
  484.  1: 419 C 07F8 03 53                 FDB     BGIN1
  485.  1: 420 C 07FA 04 B2                 FDB     INT
  486.  1: 421 C 07FC 03 43                 FDB     MONIT           SWI
  487.  1: 422 C 07FE 03 43                 FDB     RESET
  488.  1: 423                      
  489.  
  490.     ------------------- End of Assembly -------------------
  491.  
  492.